"""
加密和哈希计算工具模块。
"""

import base64
import hashlib
from typing import Union

def encode_base64(data: Union[str, bytes]) -> str:
    """
    Base64编码。
    
    Args:
        data: 要编码的字符串或字节数据
        
    Returns:
        编码后的字符串
    """
    if isinstance(data, str):
        data = data.encode('utf-8')
    return base64.b64encode(data).decode('utf-8')

def decode_base64(data: str) -> str:
    """
    Base64解码。
    
    Args:
        data: 要解码的字符串
        
    Returns:
        解码后的字符串
    """
    return base64.b64decode(data).decode('utf-8')

def md5_hash(data: Union[str, bytes]) -> str:
    """
    计算MD5哈希值。
    
    Args:
        data: 要计算哈希的字符串或字节数据
        
    Returns:
        32位小写MD5哈希值
    """
    if isinstance(data, str):
        data = data.encode('utf-8')
    return hashlib.md5(data).hexdigest() 